package com.td.lib.imagelibrary;

import ohos.app.Context;
import ohos.utils.net.Uri;

import java.io.File;


/**
 * @description 图片管理类
 * @since 2021/9/28 10:00
 */
public class ImageLoader implements ImageLoaderInterface{
    private static volatile ImageLoader instance = null; // 单例模式，初始化用的
    private static Context context; // 上下文

    /**
     * 隐藏构造方法
     */
    private ImageLoader() {
    }

    /**
     * 单例模式
     * @param mContext 上下文
     * @return ImageLoader
     */
    public static ImageLoader getInstance(Context mContext){
        context=mContext;
        if(instance==null){
            synchronized (ImageLoader.class){
                if(instance==null){
                    instance=new ImageLoader();
                }
                return instance;
            }
        }else{
            return instance;
        }
    }

    /**
     * 通过文件创建 LoadImageManage
     * @param file 图片文件
     * @return ImageDecoder
     */
    @Override
    public ImageDecoder load(File file) {
        return new ImageDecoder(file);
    }

    /**
     * 通过Uri创建 LoadImageManage
     * @param uri  图片的uri
     * @return ImageDecoder
     */
    @Override
    public ImageDecoder load(Uri uri) {
        return new ImageDecoder(context,uri);
    }

    /**
     * 通过图片的媒体id来创建 LoadImageManage
     * @param id 图片媒体id
     * @return ImageDecoder
     */
    @Override
    public ImageDecoder load(int id) {
        ImageDecoder imageSource = new ImageDecoder(context,id);
        return imageSource;
    }
}
